package visiopuce.graph;

import java.awt.Color;
import java.util.Collection;

import org.eclipse.swt.SWT;
import org.jfree.chart.event.AxisChangeEvent;
import org.jfree.chart.event.AxisChangeListener;
import org.jfree.chart.plot.IntervalMarker;
import org.jfree.chart.plot.Marker;
import org.jfree.ui.Layer;

public class AxisGraphChangeListener implements AxisChangeListener {

	private RegionGraphique regionGraphique;

	public AxisGraphChangeListener(RegionGraphique regionGraphique) {
		this.regionGraphique = regionGraphique;
	}

	public void axisChanged(AxisChangeEvent event) {

		double upper = ((NumberAxis2) event.getSource()).getUpperBound();
		double lower = ((NumberAxis2) event.getSource()).getLowerBound();

		if (event.getSource() instanceof NumberAxis2) {
			IntervalMarker intervalleP = new IntervalMarker(lower, upper);
			intervalleP.setPaint(Color.YELLOW);

			if (regionGraphique.getOverViewPlot() != null) {
				Collection<Marker> intervs = regionGraphique.getOverViewPlot().getDomainMarkers(0,Layer.FOREGROUND);
				Marker[] mqs =  intervs.toArray (new Marker[intervs.size ()]);
				
				for (Marker marker : mqs) {
					regionGraphique.getOverViewPlot().removeDomainMarker(marker, Layer.FOREGROUND);
				}
				regionGraphique.getOverViewPlot().addDomainMarker(intervalleP);
			}
			// if ( regionGraphique.getGraph() != null &&
			// regionGraphique.getGraph().gethScrollBar() != null &&
			// regionGraphique.getGraph().gethScrollBar().getSlider() != null) {
			// regionGraphique
			// .getGraph()
			// .gethScrollBar()
			// .getSlider()
			// .setValues((int)(lower+((upper-lower)/2)),(int)lower,(int)upper,Math.max(1,
			// (int)((upper-lower)/10)),(int)((upper-lower)/100),
			// (int)((upper-lower)/10));
			//
			// //(int)
			// (regionGraphique.getChromosomePlot().getDomainAxis().getLowerBound()
			// +
			// (regionGraphique.getChromosomePlot().getDomainAxis().getUpperBound()
			// -
			// regionGraphique.getChromosomePlot().getDomainAxis().getLowerBound())
			// / 2),
			// // (int)
			// regionGraphique.getChromosomePlot().getDomainAxis().getLowerBound(),
			// (int)
			// regionGraphique.getChromosomePlot().getDomainAxis().getUpperBound(),
			// regionGraphique.getGraph().gethScrollBar().getSlider().getThumb(),
			// // (int)
			// ((regionGraphique.getChromosomePlot().getDomainAxis().getUpperBound()
			// -
			// regionGraphique.getChromosomePlot().getDomainAxis().getLowerBound())
			// / 100),
			// // (int)
			// ((regionGraphique.getChromosomePlot().getDomainAxis().getUpperBound()
			// -
			// regionGraphique.getChromosomePlot().getDomainAxis().getLowerBound())
			// / 10));
			// }
			// } else {
			// if (regionGraphique.getGraph() != null &&
			// regionGraphique.getGraph().getvScrollBar() != null &&
			// regionGraphique.getGraph().getvScrollBar().getSlider() != null) {
			// regionGraphique
			// .getGraph()
			// .getvScrollBar()
			// .getSlider()
			// .setValues(0,(int)lower,(int)upper,Math.max(1,
			// (int)((upper-lower)/10)),(int)((upper-lower)/100),
			// (int)((upper-lower)/10));
			// }
		}
	}
}
